package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户举报记录对象 report
 * 
 * @author ruoyi
 * @date 2025-03-08
 */
public class Report extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    private  String userName;

    private String postName;

    private String commentName;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPostName() {
        return postName;
    }

    public void setPostName(String postName) {
        this.postName = postName;
    }

    public String getCommentName() {
        return commentName;
    }

    public void setCommentName(String commentName) {
        this.commentName = commentName;
    }

    /** 举报记录唯一ID（主键） */
    private Long reportId;

    /** 举报用户ID（外键） */
    @Excel(name = "举报用户ID", readConverterExp = "外=键")
    private Long userId;

    /** 被举报的帖子ID（外键，可为空） */
    @Excel(name = "被举报的帖子ID", readConverterExp = "外=键，可为空")
    private Long postId;

    /** 被举报的评论ID（外键，可为空） */
    @Excel(name = "被举报的评论ID", readConverterExp = "外=键，可为空")
    private Long commentId;

    /** 举报原因描述 */
    @Excel(name = "举报原因描述")
    private String reason;

    /** 举报时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "举报时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reportTime;

    /** 举报处理状态（如待处理/已处理） */
    @Excel(name = "举报处理状态", readConverterExp = "如=待处理/已处理")
    private String status;

    public void setReportId(Long reportId) 
    {
        this.reportId = reportId;
    }

    public Long getReportId() 
    {
        return reportId;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setPostId(Long postId) 
    {
        this.postId = postId;
    }

    public Long getPostId() 
    {
        return postId;
    }

    public void setCommentId(Long commentId) 
    {
        this.commentId = commentId;
    }

    public Long getCommentId() 
    {
        return commentId;
    }

    public void setReason(String reason) 
    {
        this.reason = reason;
    }

    public String getReason() 
    {
        return reason;
    }

    public void setReportTime(Date reportTime) 
    {
        this.reportTime = reportTime;
    }

    public Date getReportTime() 
    {
        return reportTime;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("reportId", getReportId())
            .append("userId", getUserId())
            .append("postId", getPostId())
            .append("commentId", getCommentId())
            .append("reason", getReason())
            .append("reportTime", getReportTime())
            .append("status", getStatus())
            .toString();
    }
}
